A storage device may store data that can be accessed and updated. For example, a client may store data in a storage device and submit a query at a later point in time to access the data. As time passes, more and more data may be stored in the storage device. Unfortunately, although more data is being stored in the storage device, infrequently accessed data may still remain in the storage device and consume space. Accordingly, when a query is submitted to the storage device, the storage device may sift through a large amount of data that is infrequently used in order to retrieve the proper results.
A conventional approach to solving this problem is manual cleaning of the storage device by an administrator who tracks data usage and knows how current users are using the data. The administrator may learn or predict which data is frequently accessed. It may be time consuming, however, for the administrator to learn how data is currently being used and clean out the storage device based on that knowledge. Additionally, data usage changes with time. As such, the administrator will go through this process of learning about how data is being used and accessed from a storage device again and again in order to manually clean it out.